package com.itcast.demo.simple;

/**
 * 假设你有一个数组，其中第 i 个元素是股票在第 i 天的价格。
 * 你有一次买入和卖出的机会。（只有买入了股票以后才能卖出）。请你设计一个算法来计算可以获得的最大收益。
 *
 * @author zheng.zhang
 */
public class Test2 {

    public static void main(String[] args) {
        Test2 test2 = new Test2();
        int[] arr = {1, 2, 4, 1};
        int profit = test2.maxProfit(arr);
        System.out.println(profit);
    }

    /**
     * @param prices int整型一维数组
     * @return int整型
     */
    public int maxProfit(int[] prices) {
        if (prices == null || prices.length == 0) {
            return 0;
        }
        // 拿到最大收益值
        int max = 0;
        // 记录最小值
        int min = prices[0];
        for (int price : prices) {
            // 拿到最低收益值
            min = Math.min(min, price);
            // 拿到最大收益值
            max = Math.max(max, price - min);
        }
        return max;
    }
}
